# -*- coding:utf-8 -*-
#! python3
from facecat import *

#更新悬浮状态
#views:视图集合
def updateView(views):
	updateViewDefault(views)

#绘制视图
#view:视图
#paint:绘图对象
#clipRect:区域
def onPaint(view, paint, clipRect):
	onPaintDefault(view, paint, clipRect)

#绘制视图边线
#view:视图
#paint:绘图对象
#clipRect:区域
def onPaintBorder(view, paint, clipRect):
	onPaintBorderDefault(view, paint, clipRect)

#视图的鼠标移动方法
#view 视图
#mp 坐标
#buttons 按钮 0未按下 1左键 2右键
#clicks 点击次数
#delta 滚轮值
def onMouseMove(view, mp, buttons, clicks, delta):
	onMouseMoveDefault(view, mp, buttons, clicks, delta)
		
#视图的鼠标按下方法
#view 视图
#mp 坐标
#buttons 按钮 0未按下 1左键 2右键
#clicks 点击次数
#delta 滚轮值
def onMouseDown(view, mp, buttons, clicks, delta):
	onMouseDownDefault(view, mp, buttons, clicks, delta)

#视图的鼠标抬起方法
#view 视图
#mp 坐标
#buttons 按钮 0未按下 1左键 2右键
#clicks 点击次数
#delta 滚轮值
def onMouseUp(view, mp, buttons, clicks, delta):
	onMouseUpDefault(view, mp, buttons, clicks, delta)

#视图的鼠标点击方法
#view 视图
#firstTouch:是否第一次触摸 
#firstPoint:第一次触摸的坐标 
#secondTouch:是否第二次触摸 
#secondPoint:第二次触摸的坐标
#clicks 点击次数
def onClick(view, firstTouch, firstPoint, secondTouch, secondPoint, clicks):
	onClickDefault(view, firstTouch, firstPoint, secondTouch, secondPoint, clicks)

#视图的鼠标滚动方法
#view 视图
#mp 坐标
#buttons 按钮 0未按下 1左键 2右键
#clicks 点击次数
#delta 滚轮值
def onMouseWheel(view, mp, buttons, clicks, delta):
	onMouseWheelDefault(view, mp, buttons, clicks, delta)

appPaint = FCPaint() #创建绘图对象
appPaint.defaultUIStyle = "dark"
#注册事件
appPaint.onPaint = onPaint 
appPaint.onPaintBorder = onPaintBorder
appPaint.onMouseDown = onMouseDown 
appPaint.onMouseMove = onMouseMove 
appPaint.onMouseUp = onMouseUp
appPaint.onMouseWheel = onMouseWheel
appPaint.onClick = onClick
appPaint.onUpdateView = updateView

#消息循环
def WndProc(hwnd,msg,wParam,lParam):
	return WndProcDefault(appPaint,hwnd,msg,wParam,lParam)

#创建窗体
createMainWindow(appPaint, "facecat-py", WndProc)

#创建分割视图
split = FCSplitLayoutDiv()
#设置大小
split.size = FCSize(400, 400)
#添加到框架中
addView(split, appPaint)
if split.paint.defaultUIStyle == "dark":
	split.backColor = "rgb(0,0,0)"
	split.borderColor = "rgb(100,100,100)"
	split.textColor = "rgb(255,255,255)"
elif split.paint.defaultUIStyle == "light":
	split.backColor = "rgb(255,255,255)"
	split.borderColor = "rgb(150,150,150)"
	split.textColor = "rgb(0,0,0)"

#填充布局
split.dock = "fill"    
        
#创建分割条
splitter = FCView()
#允许拖拽
splitter.allowDrag = True
#根据主题配色
if split.paint.defaultUIStyle == "dark":
	splitter.backColor = "rgb(150,150,150)"
elif split.paint.defaultUIStyle == "light":
	splitter.backColor = "rgb(100,100,100)"
#填充到父视图
addViewToParent(splitter, split)
#指定分割条
split.splitter = splitter
#设置分割条的初始位置
splitter.location = FCPoint(200, 0)
#设置分割条的初始大小
splitter.size = FCSize(5, 0)
        
#创建第一个视图
firstView = FCView()
firstView.backColor = "rgb(255,0,0)"
#添加到父视图
addViewToParent(firstView, split)
#指定第一个视图
split.firstView = firstView

#创建第二个视图
secondView = FCView()
secondView.backColor = "rgb(0,255,0)"
#添加到父视图
addViewToParent(secondView, split)
#指定第二个视图
split.secondView = secondView
#设置初始大小
split.oldSize = FCSize(split.size.cx, split.size.cy)
#重置分割条布局
resetSplitLayoutDiv(split)

#更新布局
rect = win32gui.GetClientRect(appPaint.hWnd)
appPaint.size = FCSize(rect[2] - rect[0], rect[3] - rect[1])
updateView(appPaint.views)
showWindow(appPaint)